package br.skytef.stmanager.entities;

import java.sql.Timestamp;

import br.skytef.stmanager.utils.Cnpj;
import br.skytef.stmanager.utils.calculoRelatorio;

public class GridClienteEntity {

	private int idCliente; 
	private String razaoSocial; 
	private long cnpj; 
	private String nomeFantasia; 
	private String cidade;
	private String uf; 
	private String emailCliente; 
	private String softwareHouse; 
	private String produtoNome;
	private double produtoValor; 
	private String comercialNome; 
	private String comercialTelefone; 
	private String comercialEmail;
	private String contatoNome;
	private String contatoTelefone; 
	private String contatoEmail; 
	private String planilhaDivergente; 
	private String tipoDivergencia; 
	private double divergenciaValor; 
	private Timestamp dataDivergencia;
	private double valorFaturado;
	private double valorSE;
	private double valorGSurf;
	private double valorLyra;
	private int qtdPDV; 
	private int idFaturamento;
	private int idSuporte;
	private int idParceiro;
	private int qtdLojas;
	private Timestamp data_inclusao;
	private String dataAtivacao;

	public int getIdCliente() {
		return idCliente;
	}
	public void setIdCliente(int idCliente) {
		this.idCliente = idCliente;
	}
	public String getRazaoSocial() {
		return razaoSocial;
	}
	public void setRazaoSocial(String razaoSocial) {
		this.razaoSocial = razaoSocial;
	}
	public long getCnpj() {
		return cnpj;
	}
	public void setCnpj(long cnpj) {
		this.cnpj = cnpj;
	}
	public String getNomeFantasia() {
		return nomeFantasia;
	}
	public void setNomeFantasia(String nomeFantasia) {
		this.nomeFantasia = nomeFantasia;
	}
	public String getCidade() {
		return cidade;
	}
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	public String getUf() {
		return uf;
	}
	public void setUf(String uf) {
		this.uf = uf;
	}
	public String getEmailCliente() {
		return emailCliente;
	}
	public void setEmailCliente(String emailCliente) {
		this.emailCliente = emailCliente;
	}
	public String getSoftwareHouse() {
		return softwareHouse;
	}
	public void setSoftwareHouse(String softwareHouse) {
		this.softwareHouse = softwareHouse;
	}
	public String getProdutoNome() {
		return produtoNome;
	}
	public void setProdutoNome(String produtoNome) {
		this.produtoNome = produtoNome;
	}
	public double getProdutoValor() {
		return produtoValor;
	}
	public void setProdutoValor(double produtoValor) {
		this.produtoValor = produtoValor;
	}
	public String getComercialNome() {
		return comercialNome;
	}
	public void setComercialNome(String comercialNome) {
		this.comercialNome = comercialNome;
	}
	public String getComercialTelefone() {
		return comercialTelefone;
	}
	public void setComercialTelefone(String comercialTelefone) {
		this.comercialTelefone = comercialTelefone;
	}
	public String getComercialEmail() {
		return comercialEmail;
	}
	public void setComercialEmail(String comercialEmail) {
		this.comercialEmail = comercialEmail;
	}
	public String getContatoNome() {
		return contatoNome;
	}
	public void setContatoNome(String contatoNome) {
		this.contatoNome = contatoNome;
	}
	public String getContatoTelefone() {
		return contatoTelefone;
	}
	public void setContatoTelefone(String contatoTelefone) {
		this.contatoTelefone = contatoTelefone;
	}
	public String getContatoEmail() {
		return contatoEmail;
	}
	public void setContatoEmail(String contatoEmail) {
		this.contatoEmail = contatoEmail;
	}
	public String getPlanilhaDivergente() {
		return planilhaDivergente;
	}
	public void setPlanilhaDivergente(String planilhaDivergente) {
		this.planilhaDivergente = planilhaDivergente;
	}
	public String getTipoDivergencia() {
		if(tipoDivergencia == null)
			return "normal";
		return tipoDivergencia;
	}
	public void setTipoDivergencia(String tipoDivergencia) {
		this.tipoDivergencia = tipoDivergencia;
	}
	public double getDivergenciaValor() {
		return divergenciaValor;
	}
	public void setDivergenciaValor(double divergenciaValor) {
		this.divergenciaValor = divergenciaValor;
	}
	public Timestamp getDataDivergencia() {
		return dataDivergencia;
	}
	public void setDataDivergencia(Timestamp dataDivergencia) {
		this.dataDivergencia = dataDivergencia;
	}	
	public double getValorFaturado() {
		return valorFaturado;
	}
	public void setValorFaturado(double valorFaturado) {
		this.valorFaturado = valorFaturado;
	}
	public double getValorSE() {
		return valorSE;
	}
	public void setValorSE(double valorSE) {
		this.valorSE = valorSE;
	}
	public double getValorGSurf() {
		return valorGSurf;
	}
	public void setValorGSurf(double valorGSurf) {
		this.valorGSurf = valorGSurf;
	}
	public double getValorLyra() {
		return valorLyra;
	}
	public void setValorLyra(double valorLyra) {
		this.valorLyra = valorLyra;
	}
	public int getQtdPDV() {
		return qtdPDV;
	}
	public void setQtdPDV(int qtdPDV) {
		this.qtdPDV = qtdPDV;
	}
	public int getIdFaturamento() {
		return idFaturamento;
	}
	public void setIdFaturamento(int idFaturamento) {
		this.idFaturamento = idFaturamento;
	}
	public int getIdSuporte() {
		return idSuporte;
	}
	public void setIdSuporte(int idSuporte) {
		this.idSuporte = idSuporte;
	}
	public int getIdParceiro() {
		return idParceiro;
	}
	public void setIdParceiro(int idParceiro) {
		this.idParceiro = idParceiro;
	}

	public int getQtdLojas() {
		return qtdLojas;
	}
	public void setQtdLojas(int qtdLojas) {
		this.qtdLojas = qtdLojas;
	}
	public Timestamp getData_inclusao() {
		return data_inclusao;
	}
	public void setData_inclusao(Timestamp data_inclusao) {
		this.data_inclusao = data_inclusao;
	}
	public String getDataAtivacao() {
		return dataAtivacao;
	}
	public void setDataAtivacao(String dataAtivacao) {
		this.dataAtivacao = dataAtivacao;
	}
	public void setValorCusto(double valorCusto) {
		this.valorCusto = valorCusto;
	}
	private double valorCusto;	
	public double getValorCusto() {
		valorCusto =  new calculoRelatorio().getValorCusto(produtoNome, produtoValor, qtdLojas);
		return valorCusto;
	}
	private double valorComissao;
	public double getValorComissao() {
		valorComissao = new calculoRelatorio().getValorComissao(valorFaturado, valorCusto);
		return valorComissao;
	}
	private double rentabilidade;
	public double getRentabilidade() {
		rentabilidade = new calculoRelatorio().getLiquido(valorCusto, valorGSurf, valorLyra, valorSE);
		return rentabilidade;
	}
	private String cnpjMask;
	public String getCnpjMask(){
		cnpjMask = new Cnpj().InteiroParaString(cnpj);
		return cnpjMask;
	}
	private String status;
	public String getStatus(){
		if(tipoDivergencia == null || tipoDivergencia.equals(null)){
			status = "normal";
		}else{
			status = tipoDivergencia;
		}
		return status;	
	}
	public void setValorComissao(double valorComissao) {
		this.valorComissao = valorComissao;
	}
	public void setRentabilidade(double rentabilidade) {
		this.rentabilidade = rentabilidade;
	}
	public void setCnpjMask(String cnpjMask) {
		this.cnpjMask = cnpjMask;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	
	private String nomeParceiro;
	public String getNomeParceiro() {
		return nomeParceiro;
	}
	public void setNomeParceiro(String nomeParceiro) {
		this.nomeParceiro = nomeParceiro;
	}
	public GridClienteEntity(int idCliente, String razaoSocial, long cnpj,
			String nomeFantasia, String cidade, String uf, String emailCliente,
			String softwareHouse, String produtoNome, double produtoValor,
			String comercialNome, String comercialTelefone,
			String comercialEmail, String contatoNome, String contatoTelefone,
			String contatoEmail, String planilhaDivergente,
			String tipoDivergencia, double divergenciaValor,
			Timestamp dataDivergencia, double valorFaturado, double valorSE,
			double valorGSurf, double valorLyra, int qtdPDV, int idFaturamento,
			int idSuporte, int idParceiro, int qtdLojas, Timestamp data_inclusao, String dataAtivacao, String nomeParceiro) {
		super();
		this.idCliente = idCliente;
		this.razaoSocial = razaoSocial;
		this.cnpj = cnpj;
		this.nomeFantasia = nomeFantasia;
		this.cidade = cidade;
		this.uf = uf;
		this.emailCliente = emailCliente;
		this.softwareHouse = softwareHouse;
		this.produtoNome = produtoNome;
		this.produtoValor = produtoValor;
		this.comercialNome = comercialNome;
		this.comercialTelefone = comercialTelefone;
		this.comercialEmail = comercialEmail;
		this.contatoNome = contatoNome;
		this.contatoTelefone = contatoTelefone;
		this.contatoEmail = contatoEmail;
		this.planilhaDivergente = planilhaDivergente;
		this.tipoDivergencia = tipoDivergencia;
		this.divergenciaValor = divergenciaValor;
		this.dataDivergencia = dataDivergencia;
		this.valorFaturado = valorFaturado;
		this.valorSE = valorSE;
		this.valorGSurf = valorGSurf;
		this.valorLyra = valorLyra;
		this.qtdPDV = qtdPDV;
		this.idFaturamento = idFaturamento;
		this.idSuporte = idSuporte;
		this.idParceiro = idParceiro;
		this.qtdLojas = qtdLojas;
		this.data_inclusao = data_inclusao;
		this.dataAtivacao = dataAtivacao;
		this.nomeParceiro = nomeParceiro;
	}
	public GridClienteEntity() {
		super();
	}

}
